package apiday01homework;

import java.util.Random;
import java.util.Scanner;

public class Test {
    /**
     * 验证码校验主方法
     * 通过一个无限循环生成并校验验证码，直到用户输入正确的验证码为止
     *
     * @param args 命令行参数，本程序中未使用
     */
    public static void main(String[] args) {
        // 无限循环，直到用户输入正确的验证码
        while (true) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // 根据实际需求处理中断异常
                e.printStackTrace();
            }

            // 定义一个包含数字和字母的字符串，用于生成验证码
            String line =
                    "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            // 创建随机数生成器
            Random random = new Random();
            // 初始化验证码字符串
            String code = "";
            // 循环4次，每次随机选择字符串中的一个字符，组成验证码
            for (int i = 0; i < 4; i++) {
                int index = random.nextInt(line.length());
                code += line.charAt(index);
            }

            // 输出生成的验证码
            System.out.println("验证码" + code);
            // 创建扫描器，用于读取用户输入
            Scanner scanner = new Scanner(System.in);
            // 提示并读取用户输入的验证码
            System.out.println("请输入验证码");
            String input = scanner.nextLine();
            // 比较用户输入的验证码和生成的验证码，忽略大小写
            if (input.equalsIgnoreCase(code)) {
                // 如果验证码正确，输出提示信息，并结束循环
                System.out.println("验证码正确");
                break;
            } else {
                // 如果验证码错误，输出提示信息，继续下一轮循环
                System.out.println("验证码错误");
            }
        }
    }
}
